# 读取excel文件的工具文件
# 读取测试数据
# 1.导包
import csv
from csv import DictReader
import xlrd


# 读取数据的类
class ReadTestData:
    def __init__(self, file_name):
        self.file_name = file_name

    # 读取excel的方法
    def read_excel(self, sheet_name='sheet1'):
        test_data = []  # 装所有数据的一个列表
        # 一般情况下测试数据会在项目中
        # 2.打开指定的工作簿，返回一个book对象
        book = xlrd.open_workbook(self.file_name)
        # 3.指定读取工作表,根据表名 返回一个表
        table = book.sheet_by_name(sheet_name)
        # 4.读取出表头
        keys = table.row_values(0)
        # 5.循环取出所有行的数据
        for i in range(1, table.nrows):
            row = table.row_values(i)
            row_data = {}  # 一行数据的字典
            ind = 0  # 取值列表时的序号
            for k in keys:
                row_data[k] = row[ind]
                ind += 1
            test_data.append(row_data)
        return test_data

        # 读入

    # 读取csv的方法
    def read_csv(self):
        with open(self.file_name, encoding='utf-8') as f:
            a = csv.reader(f)
            ls = []
            ls1 = []
            for e in a:
                ls.append(e)
        keys = ls[0]
        for i in ls:
            a_data = {}  # 一行数据的字典
            ind = 0  # 取值列表时的序号
            for k in keys:
                a_data[k] = i[ind]
                ind += 1
            ls1.append(a_data)
        ls1.pop(0)
        return ls1

    # 另一种读取csv的方法
    def read_temp(self):
        with open(self.file_name, 'r', encoding="utf-8") as f:
            # 读取的数据转列表类型、返回的是列表转字典
            data = list(DictReader(f))
        return data


